//对axios进行二次封装
import axios from "axios";

//实例化axios实例对象
var service = axios.create({
    baseURL: process.env.REACT_APP_BASE_URL,//基准路径
    //如果同时配置了.env.development 和 .env.production , 
    //在开发环境下 baseURL 会替换为 '/api' , 
    //在生产环境下 baseURL 会替换为 http://cdf.yantianfeng.com/
    timeout:10000//超过时间
})

//设置请求拦截器
service.interceptors.request.use((config)=>{
    //设置请求头
    config.headers['Authorization'] = localStorage.getItem('token');
    //设置第二个请求头
    config.headers['X-token'] = localStorage.getItem('token');
    return config;
},(error)=>{
    return Promise.reject(error)
})
//设置响应拦截器
service.interceptors.request.use((res)=>{
    return res;
},(error)=>{
    //处理错误状态码
    if(error.response.status == 401){
        alert('登录过期，请重新登录')
        //跳转到登录页
        //删除过期的token
    }else if(error.response.status == 404){
        alert('资源路径访问有误')
    }else if(error.response.status == 500){
        alert('服务器内部错误')
    }

    return Promise.reject(error)
}
)

export default service;